//
//  YHKHomeTableViewCell.swift
//  xinlangweiBo2
//
//  Created by 杨和逵 on 16/3/1.
//  Copyright © 2016年 yanghekui. All rights reserved.
//

import UIKit
import SnapKit

/*
1.分析页面
    原创微博，没有图片
    原创微博，有图片
    转发微博，没有图片
    转发微博，有图片


2.分析功能
    原创微博
    转发微博  -----转发图片的里有Vivar    底部视图

*/


class YHKHomeTableViewCell: UITableViewCell {

    //定义一个约束，来记录底部视图
    var constant:Constraint?
    
    
    //定义一个模型来接收数据
    var homeCellViewModel : YHKHomeCellViewModel?{
        
        
    
        
        //赋完值之后调用的方法
        didSet{
            
            //原始微博
            originalView.homeCellViewModel = homeCellViewModel

            //底部视图数据
          bottomView.homeCellViewModel = homeCellViewModel
            
            
            //转发微博的数据
            forwardView.homeCleeViewModel = homeCellViewModel
            
            //转发微博判断约束
            
            //清楚之前的约束
            constant?.uninstall()
            
            
            
            if homeCellViewModel?.statrsModel?.retweeted_status == nil{
                
                //1。当没有转发微博的时候，让他的转发微博的view隐藏
                //2.更新底部约束
                forwardView.hidden = true
                
                bottomView.snp_updateConstraints(closure: { (make) -> Void in
                    self.constant = make.top.equalTo(originalView.snp_bottom).constraint
                   
                })
                
            }else{
                
                //当有转发微博的时候，不隐藏，且更新约束
                
                forwardView.hidden = false
                
                bottomView.snp_updateConstraints(closure: { (make) -> Void in
                    
                    self.constant = make.top.equalTo(forwardView.snp_bottom).constraint
                    
                })
            }
        }
        
    }
    
    

  //创建视图三部曲
    //第一部
   override init(style: UITableViewCellStyle, reuseIdentifier: String?) {
    
        super.init(style:style, reuseIdentifier: reuseIdentifier)
    
        setUpView()
    }

   required init?(coder aDecoder: NSCoder) {
       fatalError("init(coder:) has not been implemented")
   }

    
    //第二部
    private func setUpView(){
        
        //添加视图
        contentView.addSubview(originalView)
        contentView.addSubview(bottomView)
        contentView.addSubview(forwardView)
        
        //添加约束
        
        //originalView约束
        originalView.snp_makeConstraints { (make) -> Void in
            make.left.equalTo(contentView.snp_left)
            make.right.equalTo(contentView.snp_right)
            make.top.equalTo(contentView.snp_top)
//            make.bottom.equalTo(forwardView.snp_bottom)
        }
        
        //bottomView约束
        bottomView.snp_makeConstraints { (make) -> Void in
            //左 右 下 上
            make.left.equalTo(contentView.snp_left)
            make.right.equalTo(contentView.snp_right)
            make.bottom.equalTo(contentView.snp_bottom)
            
            //记录上部约束
          self.constant = make.top.equalTo(originalView.snp_bottom).constraint
            
            make.height.equalTo(40)//高
        }
        
        
        //forwardView约束
        forwardView.snp_makeConstraints { (make) -> Void in
            //左：self 右：self 上：originalView 下：bottomView
            make.left.equalTo(contentView.snp_left)
            make.right.equalTo(contentView.snp_right)
//            make.bottom.equalTo(bottomView.snp_top)
            
           make.top.equalTo(originalView.snp_bottom)
            
        }
        
        
        
    }
    
    //第三部
    private var originalView:YHKOriginalCell = YHKOriginalCell()
    private var bottomView:YHKBottomView = YHKBottomView()
    private var forwardView:YHKForwardView = YHKForwardView()

}
